import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Color;
import javax.swing.JSeparator;
import javax.swing.JScrollPane;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextArea;


public class VueConsultPeriodique extends Vue {

	private JPanel contentPane;
	private JTextField textFieldIssn;
	private JTextField textFieldTitre;
	private JTextField textFieldNbParution;
	private JButton btnAnnuler;
	private JLabel lblParutions;
	private JButton btnRechercher;
	private JButton buttonFermer;
	private JTextArea textAreaParutions;
	private JButton btnNewButton;
	private JButton buttonAnnuler2;

//	/**
//	 * Launch the application.
//	 */
//	public static void main(String[] args) {
//		EventQueue.invokeLater(new Runnable() {
//			public void run() {
//				try {
//					VueConsultPeriodique frame = new VueConsultPeriodique();
//					frame.setVisible(true);
//				} catch (Exception e) {
//					e.printStackTrace();
//				}
//			}
//		});
//	}

	/**
	 * Create the frame.
	 */
	public VueConsultPeriodique(Controleur controleur) {
		super(controleur);
		setTitle("Information sur un periodique");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 449, 357);
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblIssn = new JLabel("Issn");
		lblIssn.setBounds(78, 44, 31, 14);
		contentPane.add(lblIssn);
		
		textFieldIssn = new JTextField();
		textFieldIssn.setBounds(139, 41, 149, 20);
		contentPane.add(textFieldIssn);
		textFieldIssn.setColumns(10);
		
		btnAnnuler = new JButton("Annuler");
		btnAnnuler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueConsultPeriodique.this);}
		});
		btnAnnuler.setBounds(199, 72, 89, 23);
		contentPane.add(btnAnnuler);
		
		btnRechercher = new JButton("Rechercher");
		btnRechercher.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().rechPeriodique(textFieldIssn.getText());
				}
		});
		btnRechercher.setBounds(319, 72, 100, 25);
		contentPane.add(btnRechercher);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(78, 117, 240, 2);
		contentPane.add(separator);
		
		textFieldTitre = new JTextField();
		textFieldTitre.setEditable(false);
		textFieldTitre.setColumns(10);
		textFieldTitre.setBounds(118, 130, 214, 19);
		contentPane.add(textFieldTitre);
		
		JLabel label = new JLabel("Titre");
		label.setHorizontalAlignment(SwingConstants.RIGHT);
		label.setBounds(33, 132, 61, 15);
		contentPane.add(label);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(118, 160, 301, 66);
		contentPane.add(scrollPane);
		
		textAreaParutions = new JTextArea();
		textAreaParutions.setEditable(false);
		scrollPane.setColumnHeaderView(textAreaParutions);
		
		lblParutions = new JLabel("Parution(s)");
		lblParutions.setHorizontalAlignment(SwingConstants.RIGHT);
		lblParutions.setBounds(12, 182, 97, 14);
		contentPane.add(lblParutions);
		
		JLabel lblNombreDeParution = new JLabel("Nombre de parution");
		lblNombreDeParution.setBounds(12, 239, 132, 20);
		contentPane.add(lblNombreDeParution);
		
		textFieldNbParution = new JTextField();
		textFieldNbParution.setEditable(false);
		textFieldNbParution.setColumns(10);
		textFieldNbParution.setBounds(149, 240, 46, 19);
		contentPane.add(textFieldNbParution);
		
		buttonFermer = new JButton("Fermer");
		buttonFermer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueConsultPeriodique.this);}
		});
		buttonFermer.setBounds(312, 269, 107, 25);
		contentPane.add(buttonFermer);
		
		buttonAnnuler2 = new JButton("Annuler");
		buttonAnnuler2.setEnabled(false);
		buttonAnnuler2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textFieldTitre.setText("");
				textFieldNbParution.setText("");
				setEtat(Vue.initiale);
			}
		});
		buttonAnnuler2.setBounds(214, 270, 89, 23);
		contentPane.add(buttonAnnuler2);
		


	}
	/**
	 * alimentation des composants d'affichage en consultant directement le periodique
	 */
	public void alimente(Periodique per) {
			textFieldTitre.setText(per.getNom());
			
			textAreaParutions.setText("");
			for(Parution par: per.getParutions()){
				textAreaParutions.append("Num de parution  :" + String.valueOf(par.getNumPar()) + " Nombre d'article : " + String.valueOf(par.getNbArticles()) + "\n");
			}		

			textFieldNbParution.setText (String.valueOf(per.getNbParutions()));
			this.repaint();
	}
	/**
	 * définition des états de la fenêtre, cad des régions actives selon l'état
	 */
	public void setEtat (int etat){
		switch (etat) {
		case initiale: {
			btnRechercher.setEnabled(true);
			btnAnnuler.setEnabled(true);
			buttonFermer.setEnabled(false);
			break;
			}
		case finale: {
			btnRechercher.setEnabled(false);
			btnAnnuler.setEnabled(false);
			buttonAnnuler2.setEnabled(true);
			buttonFermer.setEnabled(true);
			break;
			}
		}
	}
}
